home *** CD-ROM | disk | FTP | other *** search
/ PD ROM 1 / PD ROM Volume I - Macintosh Software from BMUG (1988).iso / Graphics / Graphic Utilities / Postscript Stuff / Button < prev    next >
Encoding:
Text File  |  1987-07-03  |  1.9 KB  |  101 lines  |  [GPPS/LIST]

  1. % button text
  2. % Gregory Kruckewitt
  3. % 3-March-87
  4.  
  5. /outsidecircletext
  6.     {circtextdict begin
  7.         /radius exch def
  8.         /centerangle exch def
  9.         /ptsize exch def
  10.         /str exch def
  11.         /xradius radius ptsize 4 div add def
  12.  
  13.     gsave
  14.     centerangle str findhalfangle add rotate
  15.  
  16. str
  17. {/charcode exch def
  18.         ( ) dup 0 charcode put outsideplacechar
  19. }forall
  20.     grestore
  21.     end
  22. }def
  23.  
  24. /insidecircletext
  25. {circtextdict begin
  26.         /radius exch def  /centerangle exch def
  27.         /ptsize exch def  /str exch def
  28.  
  29.     /xradius radius ptsize 3 div sub def
  30.     gsave
  31.   centerangle str findhalfangle sub rotate
  32. str
  33.  {/charcode exch def
  34.             ( ) dup 0 charcode put insideplacechar
  35. }forall
  36. grestore
  37. end
  38. }def
  39.  
  40. /circtextdict 16 dict def
  41.     circtextdict begin
  42. /findhalfangle
  43.         {stringwidth pop 2 div
  44.   2 xradius mul pi mul div 360 mul
  45. }def
  46.  
  47.  
  48. /outsideplacechar
  49. {/char exch def
  50.     /halfangle char findhalfangle def
  51. gsave
  52.         halfangle neg rotate
  53.     radius 0 translate
  54.     -90 rotate
  55.     char stringwidth pop 2 div neg 0 moveto
  56. char show
  57. grestore
  58. halfangle 2 mul neg rotate
  59. }def
  60.  
  61. /insideplacechar
  62. {/char exch def
  63.     /halfangle char findhalfangle def
  64.     gsave
  65.     halfangle rotate
  66.     radius 0 translate
  67.     90 rotate
  68.         char stringwidth pop 2 div neg 0 moveto
  69.     char show
  70.     grestore
  71.     halfangle 2 mul rotate
  72. }def
  73.  
  74.     /pi 3.1415923 def
  75. end
  76.  
  77. /Badge         
  78.     {
  79.     /Times-Bold findfont 20 scalefont setfont
  80.  
  81.     topline % top of circle text var from turbo
  82.  
  83.     22 90 65 outsidecircletext
  84.     /Times-Roman findfont 15 scalefont setfont
  85.  
  86.     bottomline % bottom of circle text var from turbo
  87.  
  88.     15 270 70 insidecircletext
  89.     
  90. } def
  91. /cutline
  92. {newpath .5 setgray 0 0 98 0 360 arc stroke 0 setgray } def   % draw circle?
  93.  
  94. % Place the badge 4 times on page
  95. gsave 157 600 translate cutline Badge grestore % upper left
  96. gsave 449 600 translate cutline Badge grestore % upper right
  97. gsave 157 266 translate cutline Badge grestore % lower left
  98. gsave 449 266 translate cutline Badge grestore  % lower right
  99. % /#copies 1 def    % number of pages
  100. showpage
  101.